package com.cata.mall.config;

import com.cata.mall.common.config.BaseSwaggerConfig;
import com.cata.mall.common.domain.SwaggerProperties;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @作者: Tao
 * @日期: 2025/10/11
 * @时间: 16:03
 * @描述: Swagger相关配置<pre>
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig extends BaseSwaggerConfig {
    /**
     * 自定义Swagger配置
     */
    @Override
    public SwaggerProperties swaggerProperties() {
        return SwaggerProperties.builder()
                .apiBasePackage("com.cata.mall.controller")
                .title("mall后台系统")
                .description("mall后台相关接口文档")
                .contactName("macro")
                .version("1.0")
                .enableSecurity(true)
                .build();
    }

    /**
     * 创建并配置Springfox处理器提供者的Bean后置处理器
     *
     * @return BeanPostProcessor Springfox处理器提供者的Bean后置处理器实例
     */
    @Bean
    public BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
        return generateBeanPostProcessor();
    }

}
